The explosive growth of the Internet that has occurred over the past few years has made the Internet and the World Wide Web (WWW) an increasingly important means for communication and distribution of information. Although much of the growth of the Internet has occurred due to its uses in education, research, and business, many households are now purchasing computer equipment and establishing Internet connections. As increasing numbers of households and families gain access to the Internet, numerous services, such as entertainment and shopping, are becoming available to serve the needs of these users. Home users are already becoming the predominant population of Internet users, and will further increase in numbers as the services available to home users become more numerous and attractive.
At the same time that increasing numbers of home users are gaining access to the internet, the price of computer equipment is rapidly decreasing. During the past year, personal computer systems priced at under $1000 were the fastest growing segment of the personal computer market. Almost all of these inexpensive computers come with a pre-installed high-speed modem and software for connecting to the Internet. With the availability of such inexpensive computers, it is not uncommon for households to have multiple computer systems, each capable of establishing a connection to the Internet.
The equipment necessary to connect multiple computer systems together to form a local area network (LAN) has also become inexpensive and simple. Many home computers are now equipped by the manufacturer with a standard network interface. Low cost add-on network interface cards and network hubs are also readily available. Setting up a LAN in the home is an attractive option for households having multiple computer systems, as it permits many resources, such as printers or storage space to be shared between all of the computers on the LAN. Moreover, manufacturers of other types of home equipment, such as home security systems, home control systems, audio and video equipment, and appliances are starting to incorporate network interfaces into their products. Already, many new homes are being built with the wiring for a LAN built-in, and it is expected that over the next decade, many more households will install a LAN.
Additionally, with the potential growth of home LANs, numerous networking technologies have been developed to make it easier to install a LAN in a home environment. These include technologies that can connect a LAN through preexisting wiring in a home, for example, by sending LAN traffic across power lines or home telephone lines. Also, numerous wireless LAN technologies that may be appropriate for home use have been developed, such as infrared and low-power RF LANs. As this type of equipment becomes widely available at a relatively low cost, it is expected that household LANs will become commonplace.
Gaining access to the Internet through a single computer is relatively simple. A large number of Internet service providers (ISPs) provide dial-up accounts that permit virtually unlimited low-speed access to the Internet for a modest monthly fee. All that is typically needed to connect to the Internet through an ISP is a personal computer equipped with a modem, a telephone line, and software (that typically is pre-installed on the computer system) for accessing the Internet through the ISP.
The speed of the modem typically determines the speed of the connection to the Internet, and is currently less than 56,000 bits per second. Over the next few years, various types of higher speed connections, such as cable modems or digital subscriber lines, capable of transferring more than a million bits per second, are expected to become widely available for home use at a relatively low cost.
In the past, dial-up connections typically provided access to the Internet to only a single computer at a time. Connecting multiple computers to the Internet required multiple telephone lines, and multiple ISP accounts. The monthly costs of maintaining multiple telephone lines and ISP accounts made this option prohibitively expensive for most households. As a result, even if a household had multiple computers, each with a high-speed modem, only one of these would typically be connected to the Internet through an ISP at any given time.
Recently, it has become possible to share a single dial-up connection to the Internet with all the computers connected to a LAN by using "gateway software." The two widely available types of gateway software are called "proxy server" software, and "network address translation" software. Proxy server software works by providing an intermediary network server between the Internet and the LAN. Computers on the LAN are configured to send their requests to the proxy server software running on one particular computer on the network. The proxy server software then sends the request to the appropriate place on the Internet, receives any response, and sends the response back to the appropriate computer on the LAN. Thus, the proxy server interposes itself in every communication between a computer on the LAN and the Internet.
Network address translation software works in a manner similar to proxy server software, but is somewhat more transparent to the other computers on the LAN. Network traffic addressed to computers outside of the LAN is directed to the network address translation software, which reroutes the network traffic to the Internet. The addresses of network traffic received from the Internet in response to requests made by computers on the LAN are translated to reroute the traffic to the appropriate computers on the LAN.
Both proxy server software and network address translation software are commercially available from numerous vendors, and may be run on a wide variety of platforms. One popular proxy server software package for use with Microsoft's WINDOWS 95 operating system is WINGATE, produced by Deerfield.com, of Gaylord, Mich. A popular network address translation software package for use with Microsoft's WINDOWS 95 operating system is SYGATE, produced by SyberGen Incorporated, of Fremont, Cali.
Using such software, one of the computers on the network (hereinafter referred to as the "server") establishes a connection to the Internet (e.g. using a modem and ISP), and permits the other computers on the LAN to access the Internet through the server. Typically, only one of the machines on the LAN is designated as the server, and only the server may normally establish a connection to the Internet.
One drawback of this arrangement is that the software typically requires that one of the computers be designated as a server, and the server may not be easily changed once designated. Since all of the computers on the LAN rely on the server for their internet connection, if the server is down (e.g. powered off or temporarily disconnected from the LAN), none of the computers on the LAN are able to access the Internet. Similarly, if the server stops functioning (e.g. due to a software problem or a system crash) while other computers on the LAN are using the server to access the Internet, all of the Internet connections are immediately lost.
These difficulties are easily overcome in a small business environment, where it is common to dedicate a specific computer to performing the tasks of a server. The server is typically not used for any other functions (aside from sharing of other network resources), and runs continuously. The server is also typically configured with a professional, stable operating system, and may be configured to run only a small set of carefully selected software packages that are known to be stable, and are unlikely to encounter incompatibilities or to cause system crashes. It is also not uncommon for small businesses to hire a computer professional to make certain that their server is properly configured, and continues to function.
Conditions typically are very different in a home environment. For example, even if the household owns several computers, rarely is one of them dedicated to being a server. The computers used in the home are often turned off during non-use, so there is no guarantee that any particular computer will be powered on and thus available for use as a server. Additionally, many home users run somewhat unstable consumer-level operating systems on their computers, and also may run a wide variety of software, increasing the probability of incompatibilities, system crashes, and other software-related problems. It is difficult to use typical gateway software in such an environment, since no one computer on the LAN can be reliably designated as the server.
In view of the above, it would be desirable to provide a means for dynamically selecting which of a number of available computers on a LAN should be used as a server to provide LAN access to the Internet.
It would also be desirable to provide a means for dynamically and transparently switching between servers when the computer that is currently acting as server is shut down.